<?php
/**
 * <https://y.st./>
 * Copyright © 2019 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'<{title}>' => 'A good start',
	'takedown' => '2017-11-01',
	'<{body}>' => <<<END
<img src="/img/CC_BY-SA_4.0/y.st./weblog/2019/02/21.jpg" alt="Trees along the road" class="framed-centred-image" width="649" height="480"/>
<section id="drudgery">
	<h2>Drudgery</h2>
	<p>
		Exasperated with my schooling, I added some code to my website-compilation script to show me a progress bar of how much I&apos;ve got left to complete.
		This progress bar is part of what get output to the terminal when I run the script, and doesn&apos;t actually show up on my website anywhere.
		It&apos;s only a part of the website-building scripts because my website is pretty much the book that records my life.
		The only automated way to get the information on how many courses I&apos;ve completed is to poll data in my website files, and I&apos;ve got to run these scripts every week anyway, so I might as well put the loading bar there where I&apos;ll see it.
		Today, it looks like this:
	</p>
	<blockquote>
<pre><samp>Schooling completed:
#######################--_______________
| YEAR 0 || YEAR 1 || YEAR 2 || YEAR 3 |</samp></pre>
	</blockquote>
	<p>
		After this term ends, I&apos;ll only have a year and a half left.
		Except, you&apos;ve got to round that up a bit, as that&apos;s seven and a half terms, so I&apos;ll need to take the full eighth term.
		I&apos;m getting there though.
		Little by little, I&apos;m getting there.
		In due time, I&apos;ll be out of this noxious school, so I can move on with my life.
		Sadly though, I must be a masochist.
		I plan to keep taking courses after graduating until they notice or I run out of courses people with my degree are even allowed to take.
		I&apos;m morbidly curious to know what happens if you just keep registering for courses.
		How long do they let you keep that up?
		The school&apos;s so disorganised that they actually tell you to apply for a leave of absence for each of the next three terms after you&apos;re supposed to graduate.
		They have no automated way to tell that you&apos;ve already completed everything, so you have to apply for these leaves of absence to avoid getting booted from the school for not registering for courses.
		They say you can apply for courses several terms in advance, but their system doesn&apos;t actually allow that.
		I imaging applying for these leaves of absence works the same way.
		You probably have to log back into the site each term during the registration period and apply for the next leave of absence for the coming term.
	</p>
	<p>
		My discussion posts for the day:
	</p>
	<blockquote>
		<p>
			The three advanced Internet techniques I&apos;d like to discuss this week are pre-compiling pages before uploading them to the Web server, automation of sitemaps, and including content (server-side, not client-side) from third-party servers.
		</p>
	</blockquote>
	<blockquote>
		<p>
			There are only so many common advanced website capabilities that we can talk about.
			Seeing as we&apos;re each required to choose three unique ones that none of our classmates have discussed already, I&apos;ll try to leave the ones you can find online for other students.
			Instead, I&apos;ll discuss three that I&apos;ve personally come up with for use on my own website.
			Well, I didn&apos;t actually come up with the last one, but it&apos;s one I&apos;ve used before and isn&apos;t one I hear about often, despite apparent widespread use.
			I&apos;ve never seen these recommended anywhere, but they&apos;re none the less doable; I&apos;ve done all three.
		</p>
		<h2>Pre-compiling pages before upload</h2>
		<p>
			The one advanced use of $a[PHP] for website I most make use of is to use it to pre-compile pages before I upload those compiled pages to the server.
			This allows me to do a number of things, while still having a completely static website.
			The Web server hosting my website doesn&apos;t even need to have $a[PHP] installed.
			$a[PHP] is instead installed on my local client machine.
			However, by using $a[PHP] in this way, I still get to make use of some of $a[PHP]&apos;s capabilities.
			For example, I use a template to keep my pages uniform.
			I can update this template, and all my pages will update with it.
			I can update my navigation, and pages with relevant navigation will be updated as well.
			This isn&apos;t possible in a standard collection of plain $a[XHTML] (or $a[HTML]) files.
			One of the reasons servers use dynamic pages is to make use of such templates, but the fact is that this doesn&apos;t actually need to be done server-side.
		</p>
		<p>
			The process is actually rather simple.
			$a[PHP] is able to open and modify files on the hard drive local to your scripts.
			In most cases, this is the Web server, but I&apos;m instead using $a[PHP] as a shell scripting language, so it&apos;s instead my client machine.
			I can then write whatever I want to those files from within the script.
			In my case, I&apos;m writing the output that would normally be sent to a Web client.
			This method doesn&apos;t work though if you&apos;re trying to customise pages for each user or run some sort of script when someone visits, such as an $a[IP] address counter.
			I&apos;m also able to use this script to sign my pages using $a[PGP] signatures, something that can&apos;t really be done when your pages are dynamic.
		</p>
		<h2>Automated sitemap building</h2>
		<p>
			Sitemaps are a way to help Web spiders find your pages so they can index them for search engines.
			This helps get those pages with few links to them found.
			At present, my current website has a weblog that contains one page for every day starting from <time>2015-03-07</time>.
			That&apos;s way too many pages to put on a sitemap.
			On one of my previous websites though, I had $a[PHP] search through my entire website&apos;s directory recursively and build the sitemap for me.
			Not having to do this by hand kept me from having to do this myself every time I added a page.
			Search engines couldn&apos;t search my directories themselves to find all the pages this easily, but a script running on the same server as the website certainly could.
		</p>
		<h2>Including remote content</h2>
		<p>
			In $a[PHP], it&apos;s possible to use remote content in your server-side scripts.
			For example, I used to have a reCAPTCHA $a[CAPTCHA] on my website, back before reCAPTCHA got bought by Google and proceeded to get all obnoxious like the rest of Google.
			I imagine what I&apos;m about to describe is much like how reCAPTCHA still functions, but I&apos;m not sure, as I haven&apos;t used modern versions of reCAPTCHA on any website I&apos;ve ever built.
		</p>
		<p>
			Basically, reCAPTCHA had three Internet-facing components.
			Two were used by your Web server, the third by the client connecting to your website.
			The first component was retrieved by your server, which would then be embedded into your Web page.
			It included a key, distinguishing this instance of reCAPTCHA from other instances, so multiple users would get different instances even on the same page.
			Using this first component, you would both add the instance key to your Web form (usually as a hidden field); so the client would tell your server what instance key was needed when it submits the form, and you would add the code to the page needed to instruct the client how to retrieve the client component.
			Once the client submitted the form, you used the instance key and the client&apos;s response to the $a[CAPTCHA] to request an answer from the reCAPTCHA server as to whether it thought this user was human or not.
		</p>
		<p>
			Both of these components used by your server took data from the remote reCAPTCHA server and used it within your own script.
			For the most part, people tend to retrieve data on the local filesystem using $a[PHP].
			However, $a[PHP] is also capable or retrieving remote content from unaffiliated servers, and using that for various tasks as well.
			Though not a very polite thing to do, you could even use $a[PHP] to scrape a website and add its content to your pages.
			The possibilities are endless.
		</p>
	</blockquote>
	<blockquote>
		<p>
			I didn&apos;t know the name of it, but the Eisenhower Decision Matrix is something I&apos;m quite familiar with.
			The premise is that you categorise things as being important, urgent, both, or neither.
			That allows you to better prioritise things and take care of them when they need to be dealt with.
			For example, it&apos;s important to me that I get my face and voice fixed.
			But that isn&apos;t urgent.
			Writing this post, on the other hand, is urgent, but not really all that important.
			In fact, I don&apos;t even think this ones in this thread are even graded.
			Even though this post isn&apos;t as important, I know it needs to come before I research facilities in my area offering $a[laser] facial hair removal, because I know it&apos;s much more urgent.
		</p>
		<p>
			Basically, you need to take care of things in this order:
		</p>
		<ol start="0">
			<li>
				Things that are urgent and important
			</li>
			<li>
				Things that are urgent, but not important
			</li>
			<li>
				Things that are important, but not urgent
			</li>
			<li>
				Things that are neither urgent nor important
			</li>
		</ol>
		<p>
			You probably won&apos;t get to everything on list item three.
			I know I don&apos;t, anyway.
			There&apos;s just not enough time in the day.
			That, of course, is what makes this decision matrix so important.
			It helps you make sure that important things get done and urgent things get done before it&apos;s too late.
		</p>
		<h3>Applying the matrix as school</h3>
		<p>
			Using this matrix, we can decide in what order to do our assignments:
		</p>
		<ol start="0">
			<li>
				The main discussion assignment
			</li>
			<li>
				This side discussion assignment that probably isn&apos;t graded
			</li>
			<li>
				Taking care of the unit assignment, learning journal, and grading of other students&apos; assignments
			</li>
			<li>
				Looking at the feedback we received on our submitted assignments, if they&apos;ve been graded already
			</li>
		</ol>
		<p>
			I actually tend to fail a bit here.
			I complete the side discussions first.
			However, I&apos;m submitting my main discussion assignment post on the same day as my side discussion posts, so both are still taken care of fairly early.
		</p>
		<h3>Applying the matrix at work</h3>
		<p>
			At work, we can use the matrix to decide in what order our job functions need to be performed.
			As we all have different jobs, I can&apos;t really give you a hard list on what takes priority over what.
			However, I&apos;m sure you get the idea.
			If it needs to be done quickly, it needs to be done sooner.
			Things that can wait will have to until you&apos;re done with the urgent stuff, after which you should tackle the important stuff, followed by everything else.
		</p>
		<h3>Using the decision matrix in life</h3>
		<p>
			Again, we lead different lives, so I can&apos;t give you a hard blueprint on this.
			For me, at the moment, my list pretty much looks like this:
		</p>
		<ol start="0">
			<li>
				<ul>
					<li>
						Complete my coursework on time
					</li>
					<li>
						Go to work
					</li>
				</ul>
			</li>
			<li>
				<ul>
					<li>
						Read and analyse scriptures (I&apos;m an atheist, but some missionaries are trying to convert me, and I&apos;m open-minded enough to be curious about what they believe in)
					</li>
					<li>
						Attend my $a[LUG] meetings
					</li>
				</ul>
				
			</li>
			<li>
				<ul>
					<li>
						Get my face fixed
					</li>
					<li>
						Get my voice fixed
					</li>
					<li>
						Get my mother to finally accept me for who I am
					</li>
					<li>
						Lose some belly girth
					</li>
				</ul>
			</li>
			<li>
				Most of my very long to-do list
			</li>
		</ol>
		<p>
			Coursework and my day job are both important, but they&apos;re also urgent.
			If I miss my coursework deadlines, I&apos;ll have to retake my courses.
			I certainly don&apos;t have time for that.
			If I miss my shifts at work, I&apos;ll get fired.
			I need an income, so that&apos;s not an option.
			My reading and $[LUG] meetings are much less important.
			Nothing particularly bad will happen if I blow these off.
			However, they&apos;re time-sensitive, making them urgent.
			The missionaries expect me to have learned more each time I see them, and if I want to look anything close to intelligent, I&apos;ve got to keep up with my reading.
			As for the meetings, they happen at a very specific time.
			I can show up late, but if I show up <strong>*too*</strong> late, they&apos;ll&apos;ve ended, and I&apos;ll have missed pretty much the only social interaction I&apos;ve actually managed to fit into my weekly schedule.
			Everything else may or may not be important to me, but it&apos;s not time-sensitive, and therefore has to wait for the things that are.
		</p>
	</blockquote>
	<blockquote>
		<h3>College attendance</h3>
		<p>
			No, I&apos;m not the first in my family to attend college.
			My mother and sister attended college before I did.
			I don&apos;t recall whether my father never attended or he dropped out.
			He didn&apos;t graduate though, that much I know.
			As for extended family, I&apos;m not really in touch with them, so I&apos;m not sure.
		</p>
		<h3>Improving websites</h3>
		<p>
			I know we&apos;re supposed to discuss what could be improved about our favourite websites, but I&apos;m rather picky.
			If the website&apos;s badly in need of improvement, I will probably still use it, but it&apos;ll be far from my favourite.
			So on my favourite websites, I can&apos;t say there&apos;s much I&apos;d improve.
			I guess reliance on third-party services would be nice to see end.
			One of my favourite websites relies on a comments system that tracks you around the Web, which is pretty terrible.
			PrivacyBadger, a browser plugin I have installed, blocks this noxious feature, but in the process, it has no choice but to prevent me from posting to the comments section.
			I can override this behaviour, and PrivacyBadger even makes it easy to do so, but if I do, I start getting tracked across the Web.
			I certainly don&apos;t want that.
		</p>
		<p>
			In general though, something I&apos;d love to see on all websites is less dependence on JavaScript.
			I&apos;d love to be able to disable JavaScript in my Web browser and not have nearly every website break on me.
			I&apos;d also love to see third-party trackers eliminated.
			PrivacyBadger is a necessity because of just how many trackers are present across the Web.
			It shouldn&apos;t be necessary though.
			These trackers shouldn&apos;t be there to begin with.
			Another annoying feature a lot of websites have is <var>User-Agent</var> sniffing.
			There is no valid reason for that <strong>*whatsoever*</strong>.
			Web developers should just rely on Web standards.
			But they don&apos;t.
			Instead, they&apos;d rather code five versions of each webpage that rely on stupid browser-specific quirks, then fail to send working code to browsers not on their list of five browsers they support.
			This is a show of utter incompetence, really.
			Again.
			There is no excuse for this kind of behaviour.
		</p>
		<h3>Favourite video game</h3>
		<p>
			My favourite video game depends on my mood, really.
			If I have time to be playing video games at all, I tend to favour one game and ignore the rest for a while, then switch to some other game and favour that one.
		</p>
		<p>
			Last time I was playing games, Minetest was my favourite.
			It&apos;s got an awesome modding $a[API], and as someone that enjoys programming, I appreciate that.
			One of the main things you can do in the game is gather resources.
			I&apos;m the type of gamer that enjoys hoarding vast collections of items, building up my treasury, and almost never using any of it.
			Is that a stupid way to play?
			You bet.
			What good are the items you collect if you&apos;re never going to get any use out of them?
			Still, that&apos;s how I have fun.
			I ended up giving up on this game though.
			The problem is I&apos;ve got to play solo, and it&apos;s much more fun in a group.
			Multiplayer play is available, but it&apos;s over an unencrypted channel, and is therefore unsafe, due to governments and $a[ISP]s constantly spying on us.
			Even if you&apos;re not doing anything particularly secret, the creep factor just makes it not worth it.
		</p>
		<p>
			I also enjoy SuperTux at times.
			It&apos;s a nice platformer, and again, there are collectables.
			In this game, there&apos;s a limited number of each and getting them does absolutely nothing besides improve your recorded record, but still, it makes a nice target to shoot for.
			Hex-a-Hop makes a great game when I&apos;m looking for something more puzzle-based.
			Or sometimes, when I&apos;m looking for a waiting game, I play A Dark Room.
			I guess those would be the main games I keep going back to.
		</p>
	</blockquote>
	<p>
		I didn&apos;t get nearly as much done today as I&apos;d hoped to, but I had a finite list of things I wanted to get done at a minimum, and I accomplished everything on that list.
		I got the discussion posts above submitted, which are all for the same course.
		I got the main assignment for that same course completed.
		And lastly, I got the grading for both courses completed.
		That leaves me with the main assignment and the discussion assignment for the other course.
		Completing those will involve working on the reading assignment as well.
		After that, everything for the week will be done.
		I don&apos;t expect to make quick work of these things, but at least I&apos;m down to basically two assignments.
		The rest is just stuff that&apos;s got to get done along the way.
	</p>
</section>
<section id="religion">
	<h2>Religion</h2>
	<p>
		I tried to avoid asking the missionaries today too many questions about the scriptures I&apos;ve been reading.
		I feel like last time, we got sidetracked and didn&apos;t actually cover any new material.
		I didn&apos;t want to make that mistake again.
		The missionaries had been bringing information not directly from their scriptures, and that&apos;s the information it&apos;s useful to get from them.
		When I finish reading the Book of Mormon, I&apos;ll ask my questions about it then.
	</p>
	<p>
		I guess today, we just read a chapter from later in the book.
		I&apos;m going to be reading that when I get to it anyway, so nothing too important.
		We did read one of those verses with bad logic that reminded me of verses from the second book of Nephi though; the book I plan to get reread this week.
		So we discussed that a bit.
		I wasn&apos;t sure exactly where that section was, but I knew it wasn&apos;t in the first book of Nephi because it wasn&apos;t in my <a href="/en/religion/scripture/Mormon.xhtml">current notes</a> yet, but I haven&apos;t read beyond 2 Nephi 22:2 yet, so it must&apos;ve been in that second book somewhere.
		One of the missionaries knew what I meant and knew where to find it, and yeah, it was in the second book of Nephi.
		When they reread it, they pointed out the parts that did make sense, such as how if there&apos;s no commandment, there can be no sin.
		So I pointed out the part how it says if there&apos;s no righteousness, there can be no happiness, yet some people delight in being terrible.
		Their response was that it was talking about happiness once we&apos;ve left the physical world.
		In the next life, we won&apos;t have material items, so anything we&apos;ve gained will be gone, save for our memories and our relationships.
		They said the commandments were put in place to guide us toward what will make us happiest once this world is over.
		It&apos;s not that Jehovah wants these things, but that he knows we&apos;ll be happiest with them.
		That seemed to make sense at the time, but now that I think on it, it doesn&apos;t really.
		I mean, some people delight in murder, for example.
		Thankfully, I&apos;m pretty sure these people are few.
		But still, they&apos;ll keep the memories of murder just the same as people that hold onto their memories of other pleasant experiences.
		And because these aren&apos;t the sort of people interested in making friends, they&apos;re not missing out due to lost relationships that way, either.
		&quot;Thou shall not kill&quot; isn&apos;t a commandment for making the would-be murderer happy.
		It&apos;s for Jehovah, and probably also for the would-be victim.
	</p>
</section>
END
);
